Software developers develop software applications using one or more software development programs. These software development programs allow developers to modify the source code that specifies the commands that enable the software application to perform the desired functionality. As part of the software development process, tests are created to ensure that the particular software application operates as intended. There can be different types of tests. Some tests may be designed to test the user interface and ensure that particular options are processed correctly. Other tests may be designed to test the data itself to make sure the data is stored and/or calculated correctly. Numerous types of tests can be used to test the functionality of a given software application. Some tests are performed in an automated fashion without supervision of a user, while other tests are performed by a tester, who manually performs the test to see if the desired result is achieved.
A software developer who makes changes to the source code does not know whether or not his/her change will impact one or more tests. Thus, he/she typically just runs all tests to see what type of impact the change to the source code will have on the tests. The volume of tests is often not manageable, as it could sometimes take days to run all of the tests. Even when the developer runs all of the tests, the developer is still faced with the challenge of understanding what those tests actually do as part of determining the impact that the source code changes will actually have on the tests.